// async 函数返回一个 promise 对象
// 和 python 中的相应概念一模一样

function timeout(ms) {
  return new Promise((resolve) => {
    setTimeout(resolve, ms);
  });
}

async function asyncPrint(value, ms) {
  await timeout(ms);
  console.log(value);
}

asyncPrint('hello world', 2000);

var fetch = require('node-fetch');

// async 方法返回一个 promise 对象
// 而且在其中所有 await 都完成后，这个完整的 promise 对象才会
// 被改变
async function getTitle(url) {
  let response = await fetch(url);
  let html = await response.text();
  return html.match(/<title>([\s\S]+)<\/title>/i)[1];
}
// getTitle('http://www.baidu.com').then(console.log)
